﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplicationGDI1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Bitmap b = new Bitmap(ClientSize.Width, ClientSize.Height); // Создаем изображение, аналог файлу bmp  и будет такой фиксированной ширины и высоты

            Graphics gr = Graphics.FromImage(b);    // создаем объект график. это обертка (дискриптор устройства, контекст) которая позволяет работать с графиком и как холст для рисования получаем наш битмап

            Pen p = new Pen(Color.Green); // корандаш зеленого цвета.
            p.Width = 10;
            gr.DrawLine(p, new Point(500,50), new Point(100,200));
            gr.DrawLine(p, new Point(500, 200), new Point(100, 50));

            p.Width = 10;
            gr.DrawRectangle(p, new Rectangle(550, 50, 100, 100)); // создали треугольник

            SolidBrush sb = new SolidBrush(Color.Red);  // создаем объект солид браш.
            gr.FillRectangle(sb, new Rectangle(550, 50, 100, 100)); // закрышиваем треуггольник

            Point[] pa = new Point[100];
            Random rnd = new Random(Environment.TickCount);

            for (int i = 0; i < pa.Length; i++)
            {
                pa[i] = new Point(rnd.Next(0, ClientSize.Width), rnd.Next(0, ClientSize.Height));
            }
            p.Width = 5;
            p.Color = Color.Snow;
            gr.DrawCurve(p, pa);

            p.Color = Color.Fuchsia;
            gr.DrawBezier(p, pa[0], pa[1], pa[3], pa[4]);

            // шрифты
            Font f = new Font("Georgia", 24);
            gr.DrawString("Hello PAPPY", f, sb, new Point(10, 20));

            
            gr.Dispose();   // аналог деструктора. обязательно закрывать. ибо память утечет.

            BackgroundImage = b;    // фон ставим нашу граф приколюшку.
       }
    }
}
